<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // console.log(a);//und
        // var a=12;
        // function fn(){
        //     console.log(a);//und
        //     var a=13;
        // }
        // fn();
        // console.log(a);//12


        // console.log(a);//und
        // var a=12;
        // function fn(){
        //     console.log(a);//12
        //     a=13;
        // }
        // fn();
        // console.log(a);//13


        // console.log(a);//报错
        // a=12;
        // function fn(){
        //     console.log(a);
        //     a=13;
        // }
        // fn();
        // console.log(a);

        // var foo=1;
        // function bar(){
        //     // foo--und---10
        //     if(!foo){//true
        //         var foo=10;
        //     }
        //     console.log(foo);//10
        // }
        // bar();

        // EC（G)  n-0  a-0x002  c-0x003(EC(a))
        // n  a--0x002  c
        // var n=0;
        // function a(){//0x002
        //     //EC(a) n--10--11--12
        //     // n  b-0x003(EC(a))
        //     var n=10;
        //     function b(){
        //         //EC(b)
        //         n++;
        //         console.log(n);//11  12
        //     }
        //     b();
        //     return b;
        // }
        // var c=a();
        // c();
        // console.log(n);//0

        // a--10 b--11 c--12--3
        // var a=10,b=11,c=12;
        // function text(a){
        //     //EC(text)  a--10--1  b--2
        //     a=1;
        //     var b=2;
        //     c=3;
        // }
        // text(10);
        // console.log(a);
        // console.log(b);
        // console.log(c);

        //  // a--und
        // if(!("a" in window)){ //!true--false
        //     var a=1;
        // }
        // console.log(a);//undefined
       
        // // a--4  b--0x002
        // var a=4;
        // function b(x,y,a){//0x002
        //     // x-1 y-2 a-3-10
        //     //[1,2,3]--[1,2,10]
        //     console.log(a);//3
        //     arguments[2]=10;
        //     console.log(a);//10
        // }
        // a=b(1,2,3);
        // console.log(a)//undefined


        // foo--"hello"
        // var foo="hello";
        // (function(foo){
        //     //EC(AN) foo--"hello"
        //     //foo
        //     console.log(foo);//"hello"
        //     var foo=foo||"word";//"hello"||"word"--->"hello"
        //     console.log(foo);//"hello"
        // })(foo);
        // console.log(foo);//"hello"

        //EC(G)   a--9--0--1--0--1--2 fn-0x002 f--0x003(EC(fn))
        //a  fn-0x002 f
        // var a=9;
        // function fn(){
        //     //EC(fn)
        //     a=0;
        //     return function(b){//0x003(EC(fn))  0x004(EC(fn))  0x003(EC(fn))
        //         // b--5
        //         return b+a++;// 5+0=5  a--1    5+1=6
        //     }
        // }
        // var f=fn();
        // console.log(f(5));//0x003  5
        // console.log(fn()(5));//5
        // console.log(f(5));//6
        // console.log(a);//2

        // var ary=[1,2,3,4];//0x001 [0,2,3,4]
        // function fn(ary){
        //     //EC(fn)  ary--0x001 [0,2,3,4]---0x002 [0]--[100]
        //     ary[0]=0;
        //     ary=[0];
        //     ary[0]=100;
        //     return ary;//0x002
        // }
        // var res=fn(ary);//0x002
        // console.log(ary);//[0,2,3,4]
        // console.log(res);//[100]


        // function fn(i){//0x001
        //     // i--10--11--12
        //     // i--20--21
        //     // i--30--31
        //     return function (n){//0x002(EC(fn)--0x001)
        //         // n--20
        //         // 40
        //         // 50
        //         // n--30
        //         console.log(n+(++i));//20+11   40+21  50+31  30+12
        //     }
        // }
        // // f---0x002
        // var f=fn(10);
        // f(20);//0x002(20)  31
        // fn(20)(40);//61  0x00a 0x00b
        // fn(30)(50);//81  0x00aa 0x00bb
        // f(30);//0x002(30)  42
    </script>
</body>
</html>